package com.dao;

import com.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface UserDao {
    //查询查看信息
    Set<User> queryAll();
    //插入信息，新增
    int insertByUser(User user);
    //删除信息,逻辑删除，类似于更新
    int deleteByUser(User user);
    //更新信息
    int updateByUser(User user);
    //通过id进行删除，物理删除
    int deleteById(User user);
    //通过用户、角色进行多表联查，多表联查
    Set<User> queryAllRole();
    //通过用户、角色进行查询，一个用户对应多个角色
    Set<User> queryAllRoles();
    //实现在添加用户的同时也添加角色的方法
    int insertByUserRole(User user);
    //进行批量删除,@Param是在传递是一个集合的时候给定一个名，如果不给定就会找不到
    int deletedIds(@Param("userIds")Set<Integer> userIds);
    //查询语句通过列来进行查询
    Set<User> queryByColumn(@Param("column")String column, @Param("columnValue")String columnValue);
    //根据用户姓名、电话、角色名进行模糊查询
    Set<User> queryNamePhoneRole(@Param("userName")String userName, @Param("userPhone")String userPhone,@Param("roleName") String roleName );
}
